import vnode from "./vnode";
import createElement from "./createElement";
import pathVnode from "./pathVnode";
export default function(oldVnode, newVnode) {
  // 判断 oldVnode 是否 DOM 节点 还是 虚拟节点
  if (!oldVnode?.sel) {
    // 不是 虚拟节点 需要包装为 虚拟节点
    // oldVnode.tagName.toLowerCase()  获取标签元素 并且转小写
    oldVnode = vnode(oldVnode.tagName.toLowerCase(), {}, [], undefined, oldVnode);
  }
  // 判断 oldVnode 和 newVnode 是不是同一个节点
  if (oldVnode.key === newVnode.key && oldVnode.sel === newVnode.sel) {
    // 同一个节点
    console.log("同一个节点");
    pathVnode(newVnode, oldVnode);
  } else {
    // 不是一节点  暴力插入新的节点  删旧的节点
    const newVnodeElm = createElement(newVnode);
    // // 插入到老节点之前
    console.log(oldVnode.elm.parentNode, "oldVnode.elm");

    if (newVnodeElm && oldVnode.elm.parentNode) {
      oldVnode.elm.parentNode.insertBefore(newVnodeElm, oldVnode.elm);
      // 删除老节点
      oldVnode.elm.parentNode.removeChild(oldVnode.elm);
    }
  }
}
